package identifier;

import java.util.ArrayList;
import java.util.List;

public class Demo002 {
    public static void main(String[] args) {
        ArrayList<MiniCat> miniCats = new ArrayList<>();
        ArrayList<Cat> cats = new ArrayList<>();
        ArrayList<Animal> animals = new ArrayList<>();
        //满足:List<? extends Cat> list
        test(miniCats);
        //满足:List<? extends Cat> list
        test(cats);
        //不满足:List<? extends Cat> list
        //test(animals);


    }

    public static void test(List<? extends Cat> list){
        //根据List<? extends Cat> list，可知传入进来的list内部都是Cat集其子类
        //因为不知道继承层级，万一传入的list甚至继承自miniCat,所以list不能存入MiniCat、Cat、Animal
        //以下均编译出错
//        list.add(new Cat());
//        list.add(new MiniCat());
//        list.add(new Animal());

    }
}
